💯 solving-algo | March 25, 2021
열(문자), 행(숫자)의 데이터를 받아 각 조건에 맞게 몇 번 움직일 수 있는지 맞추는 문제
position = input()
# 각 row, column 자리 지정
row = int(position[1])
col = int(ord(position[0])) - int(ord('a')) + 1
# 현 위치에서 움직일 수 있는 리스트
move_list = [(-1, -2), (-1, 2), (1, -2), (1, 2), (-2, -1), (-2, 1), (2, -1), (2, 1)]
count = 0
for move_lst in move_list:
next_row = row + move_lst[1]
next_col = col + move_lst[0]
# 움직일 수 있는 판의 범위 체크
if next_row >= 1 and next_col >= 1 and next_row <= 8 and next_col <= 8:
count += 1
print(count)
일단 입력 받은 데이터가 문자열로 입력 받기에 row는 추출하기 쉬웠으나, 열의 데이터는 문자로 입력을 받아 정수형으로 변환하는 과정이 필요했다. 따라서 특정 한 문자를 아스키 코드로 변환해 계산해 주었다.
ord
: 특정 한 문자를 아스키 코드 값으로 변환, 'a'
문자는 97의 값을 가짐.+1
연산을 안해준다면, 입력 값이 a일때 a(97) - a(97) = 0이 되므로